#!/bin/sh
###########################################
#   FUNTIONS
###########################################
###########################################
#   INITAUTOSSH
##########################################
initAutossh()
{
    killall autossh>/dev/null
    LOG_INFO "$SSH_PORT $SSH_USER $SSH_PASSWORD $SSH_IPADDR"
    /usr/bin/sshToServer $SSH_PORT $SSH_USER $SSH_IPADDR $SSH_PASSWORD >/dev/null
    if [ $? -eq 0 ] ; then
	LOG_INFO "autossh connect success $?"
	echo "success"
	exit 0
    else
	LOG_ERR "autossh failed because unknow error $?"
	echo "failed"
	exit 1
    fi
    
}

###########################################
#    killautossh
###########################################
stopAutossh()
{
    killall autossh >/dev/null
    LOG_INFO "stop autossh "
    echo "success"
    exit 0
}



############################################
#  Logging
############################################
LOG_INFO () 
{
  logger -p local0.notice $LOGGER_V -t AllowServer **INFO** "$*"
}
LOG_ERR () 
{
  logger -p local0.err $LOGGER_V -t AllowServer **ERROR** "$*"
}
LOG_CRIT () 
{
  logger -p local0.crit $LOGGER_V -t AllowServer **CRITICAL** "$*"
}


###########################################################
#  Shell command wrappers - mainly used to log errors
###########################################################
SHELL_ERR_LOG()
{
  output=`$1 2>&1`
  local rc=$?
  if [ $rc -ne 0 ]; then
    ERR_LOG $1 "command output: ($output), command rc ($rc)"
  fi
  return $rc
}
SHELL_CRIT_LOG()
{
  output=`$1 2>&1`
  local rc=$?
  if [ $rc -ne 0 ]; then
    CRIT_LOG $1 "command output: ($output), command rc ($rc)"
  fi
  return $rc
}


##############################################
#           MAIN
##############################################
OPTION="0"
OPTION_START="1"
SSH_PORT="9000"
SSH_USER="root"
SSH_PASSWORD="root123"
SSH_IPADDR="192.168.0.11"

while getopts p:U:P:d:s opt
do 
    case "$opt" in
	p)OPTION=$OPTION_START;SSH_PORT=$OPTARG;;
	U)SSH_USER=$OPTARG;;
	P)SSH_PASSWORD=$OPTARG;;
	d)SSH_IPADDR=$OPTARG;;
	s)stopAutossh;;
 	\?)printf_help;;
    esac
done


if [ $OPTION -eq $OPTION_START ]; then
    LOG_INFO "start to init autossh"
    initAutossh
fi

